home *** CD-ROM | disk | FTP | other *** search
Wrap
(*************************************************** Ant Movie Catalog importation script www.antp.be/software/moviecatalog/ [Infos] Authors=O Guardiπo (<link>bruno_mga@hotmail.com</link>) Title=Vervideo Description=Movie importation script for vervideo.com.br Site=www.vervideo.com.br Language=PT Version=1.0 - 26 Fevereiro 2005 Requires=3.5.0 Comments=Script feito por O Guardiπo (www.guardiao.pt.vu) para o site "www.vervideo.com.br" | License=This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. | GetInfo=1 [Options] ***************************************************) program Vervideo; uses StringUtils1; var MovieName, MovieURL: string; LineNr, BeginPos, EndPos: Integer; procedure AnalyzeFilmPage(Address: String); var Page : TStringList; Value,value2 : string; begin Page := TStringList.Create; Page.Text := UTF8Decode(GetPage(Address)); SetField(fieldURL, Address); LineNr := FindLine('<td align="center" valign="top"><strong>', Page, 0); value := Page.GetString(LineNr); value:=Copy(value,43,length(value)); EndPos := pos('</strong>', value); value:=copy(value,1,EndPos-1); SetField(fieldTranslatedTitle, value); value := Page.GetString(LineNr+1); BeginPos:=Pos('[ ',value)+2; EndPos:=Pos(' ]</td>',value); value:=Copy(value,BeginPos,EndPos-BeginPos); SetField(fieldOriginalTitle, value); LineNr := FindLine('<strong>Ano:</strong><br>', Page, 0); value := Page.GetString(LineNr); value:=Copy(value,26,length(value)); HTMLRemoveTags(value); HTMLDecode(value); value:=StringReplace(value,' ',''); SetField(fieldYear, value); LineNr := FindLine('<strong>Origem:</strong><br>', Page, 0); value := Page.GetString(LineNr); value:=Copy(value,32,length(value)); HTMLRemoveTags(value); HTMLDecode(value); value:=StringReplace(value,' ',''); SetField(fieldCountry, value); LineNr := FindLine('<strong>Genero</strong>:<br>', Page, 0); value := Page.GetString(LineNr); value:=Copy(value,32,length(value)); HTMLRemoveTags(value); HTMLDecode(value); value:=StringReplace(value,' ',''); SetField(fieldCategory, value); LineNr := FindLine('<td><strong>Direção:</strong>', Page, 0)+2; value := Page.GetString(LineNr); BeginPos:= pos('<a href',value); EndPos := pos('</a>',value); value:=Copy(value,BeginPos,EndPos-BeginPos); HTMLRemoveTags(value); HTMLDecode(value); SetField(fieldDirector, value); value := Page.text; BeginPos := Pos('<td><strong>Atores:</strong>', value); value:=Copy(value,BeginPos,Length(value)); EndPos := pos('</td>',value); value:=Copy(value,1,EndPos-1); repeat BeginPos:=pos('">',value)+2; EndPos:=pos('</a>',value); value2:=value2+Copy(value,BeginPos,EndPos-BeginPos)+', '; value:=Copy(value,EndPos+4,length(value)); until (pos('">',value)=0); value2:=Copy(value2,1,length(value2)-3); SetField(fieldActors, value2); LineNr := FindLine('<td valign="top"><div align="justify">', Page, 0); value := Page.GetString(LineNr); BeginPos:= pos('<td valign="top"><div align="justify">',value)+38; EndPos := pos('</div></td>',value); value:=Copy(value,BeginPos,EndPos-BeginPos); HTMLRemoveTags(value); HTMLDecode(value); SetField(fieldDescription, value); LineNr:=FindLine('<strong>Duração:</strong>',Page,0); value := Page.GetString(LineNr); BeginPos:=Pos('<br>',value); EndPos:=Pos(' min',value); value:=Copy(value,BeginPos,EndPos-BeginPos); value:=StringReplace(value,' ',''); HTMLRemoveTags(value); HTMLDecode(value); SetField(fieldLength, value); LineNr:=FindLine('<strong>Distribuidora:</strong>',Page,0); value := Page.GetString(LineNr); BeginPos:=Pos('<br>',value); value:=Copy(value,BeginPos,Length(value)); value:=StringReplace(value,' ',''); HTMLRemoveTags(value); HTMLDecode(value); SetField(fieldProducer, value); LineNr := FindLine('<td rowspan="7" valign="top" align="center">', Page, 0)+2; value := Page.GetString(LineNr); BeginPos:=Pos('<img src="',value)+10; EndPos:=Pos('" border="1"',value); value:=Copy(value,BeginPos,EndPos-BeginPos); GetPicture(Value); end; function FindLine(Pattern: string; List: TStringList; StartAt: Integer): Integer; var i: Integer; begin result := -1; if StartAt < 0 then StartAt := 0; for i := StartAt to List.Count-1 do if Pos(Pattern, List.GetString(i)) <> 0 then begin result := i; Break; end; end; procedure AnalyzePage(Address: string); var Page: TStringList; x:integer; MovieAddress, findMovieName,linedown : string; guardar, nome_filme:string; begin PickTreeClear; Page := TStringList.Create; Page.Text :=UTF8Decode(GetPage(Address)); if Pos('NΓo foram encontrados filmes com essas caracterφsticas', Page.Text)<>0 then begin ShowMessage('O filme nπo foi encontrado.'); Exit; end else begin repeat repeat x := FindLine('bt-proxima.gif', Page, 0); if x<>-1 then guardar := Page.GetString(x); BeginPos:=Pos('filme.cfm?cod=',Page.Text); Page.Text:=Copy(Page.Text,BeginPos,Length(Page.Text)); EndPos:=Pos('"',Page.Text); MovieURL:='http://www.vervideo.com.br/'+Copy(Page.Text,1, EndPos-1); BeginPos:=Pos('<br>',Page.Text)+4; EndPos:=Pos('</a>',Page.Text); nome_filme:= Copy(Page.Text,BeginPos, EndPos-BeginPos); PickTreeAdd(nome_filme, MovieURL); Page.text:=Copy(Page.text,EndPos,Length(Page.Text)); until (Pos('filme.cfm?cod=', Page.Text)=0); if Pos('bt-proxima.gif',guardar)<>0 then begin BeginPos:=Pos('pagina(',guardar)+7; EndPos:=Pos(');"',guardar); guardar:=Copy(guardar,BeginPos, EndPos-BeginPos); Page.Text :=UTF8Decode(GetPage('http://www.vervideo.com.br/busca.cfm?palavra='+MovieName+'&ator=&diretor=&sinopse=&genero=0&origem=0&distribuidora=0&ano=&trailer=&wallpaper=&pagina='+guardar+'&buscar=Buscar')); end else break until (guardar=''); if PickTreeExec(Address) then AnalyzeFilmPage(Address); Page.Free; end; end; begin MovieName := GetField(fieldOriginalTitle); if Input('Importar do Vervideo', 'Escreva o nome do filme:', MovieName) then begin MovieName:=StringReplace(MovieName,' ','+'); AnalyzePage('http://www.vervideo.com.br/busca.cfm?buscar=Buscar&palavra='+MovieName); end; end.